SI_SNOW – Snow Index (Visible & SWIR based)
SI_SNOW is a snow index designed to distinguish snow and ice from other land-cover types by comparing the reflectance in the green band and a SWIR band. Snow is typically bright in visible wavelengths and strongly absorbs in SWIR, making this ratio effective for snow detection.
What does SI_SNOW measure?
SI_SNOW enhances pixels where the reflectance is high in the green band and low in the SWIR band, which is characteristic of snow and clean ice. It suppresses many non-snow surfaces that have higher SWIR reflectance (e.g. soil, rocks).
- Mapping seasonal snow cover over mountainous terrain.
- Monitoring snow extent and changes over time.
- Supporting hydrological and water-resource studies.
- Providing a snow mask for further analysis or classification.
Note: This formulation is conceptually similar to NDSI (Normalized Difference Snow Index) using GREEN and SWIR. Here it is implemented under the name SI_SNOW for your library. Adapt the exact expression if your reference uses different bands or scaling.
SI_SNOW formula (example)
SI_SNOW = (GREEN - SWIR) / (GREEN + SWIR)
Snow and ice generally show high positive SI_SNOW values, whereas soil, rocks, vegetation and water usually produce lower or negative values because of their higher SWIR reflectance.
SI_SNOW = (B3 - B11) / (B3 + B11)
B3 = GREEN, B11 = SWIR.
SI_SNOW = (B3 - B6) / (B3 + B6)
B3 = GREEN, B6 = SWIR1.
You may switch to another SWIR band (e.g. SWIR2) depending on the sensor and the recommended NDSI/ snow-index definition in your reference.
Required bands
Sensors & spectral bands
| Sensor | GREEN | SWIR |
|---|---|---|
| Landsat 8 / 9 OLI | B3 | B6 (SWIR1) |
| Sentinel-2 MSI | B3 | B11 (SWIR) |
Tip: always use surface-reflectance products and apply any scale factors for each collection before computing SI_SNOW.
Typical behaviour
| Land-cover type | SI_SNOW trend |
|---|---|
| Clean snow / fresh snow | High positive SI_SNOW |
| Dirty snow / mixed snow–soil | Intermediate values |
| Soil, rocks, vegetation | Low or negative SI_SNOW |
| Water / shadow | Very low / noisy SI_SNOW |
Snow thresholds depend on sensor, illumination and atmospheric conditions. Always calibrate with reference data (e.g. high-res imagery or in-situ observations).
Using SI_SNOW in Google Earth Engine
- Select a surface-reflectance collection (Sentinel-2 SR or Landsat 8/9 SR).
- Filter by date, cloud cover and region of interest (ROI).
- Compute SI_SNOW as (GREEN - SWIR) / (GREEN + SWIR).
- Visualize the index and export the results if needed.
// SI_SNOW – Snow Index example (Sentinel-2) in Google Earth Engine
var roi = /* your geometry here */;
// Sentinel-2 surface reflectance
var s2 = ee.ImageCollection('COPERNICUS/S2_SR')
.filterBounds(roi)
.filterDate('2023-01-01', '2023-12-31')
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 30))
.median();
// Select bands (already reflectance in S2_SR)
var green = s2.select('B3');
var swir = s2.select('B11');
// Compute SI_SNOW = (GREEN - SWIR) / (GREEN + SWIR)
var siSnow = green.subtract(swir)
.divide(green.add(swir))
.rename('SI_SNOW');
// Visualisation: highlight snow
Map.centerObject(roi, 7);
Map.addLayer(siSnow, {
min: -1.0, max: 1.0,
palette: ['#0b1120','#1d4ed8','#22c55e','#eab308','#f97316','#f9fafb']
}, 'SI_SNOW - Snow Index');
// Optional export
Export.image.toDrive({
image: siSnow,
description: 'SI_SNOW_Sentinel2_example',
region: roi,
scale: 20,
maxPixels: 1e13
});
Important: if your preferred snow-index definition uses another combination (e.g. GREEN vs SWIR2 or thresholds-based masking), replace the expression accordingly while keeping this HTML template in your indices library.